<!DOCTYPE html>
<html>
	<head>
		<meta charset="utf-8">
		<title></title>
	</head>
	<script type="text/javascript">
		/*
		"use strict"写在哪个作用域就在哪起作用
		【注】不要轻易从全局范围的开头添加
		*/
		function m() {
			//一般情况下声明变量没有使用var,则变量按全局变量来处理
			max = 10;

		}

		function m1() {
			"use strict"; //声明为严格模式
			max = 19;
		}
		m1(); //报错


		/*
		EcMA5新增的数组的方法
		indexOf()数组
		【格式】数组.indexOf(元素,startIndex);
		forEach()
		数组.forEach(function(item,index,array){
			item --> 当前遍历到的元素
			index --> 当前遍历到的下标
			array --> 当前数组
		});
		功能：遍历数组
		注意：forEach()不会有返回值
		*/
		arr.forEach()
		arr.map()
		var arr = [10, 20, 30];
		arr.forEach(function(item, index, array) {

			alert(item, +" " + index + "," + array);
			// 10 0 10 20 30
		})
		arr.forEach(alert); //同样依次遍历,只接收item参数

		/* 
			map 映射 先遍历->操作->返回
			映射：一边遍历，一边生成一个新数组，一一对应

			格式：
			数组.map(function(item,index,array){
			item --> 当前遍历到的元素
			index --> 当前遍历到的下标
			array --> 当前数组
			注意：map的返回值为调用它数组的映射，具体操作在function中。
			不改变原来的数组。
		});
		*/
		var arr2 = [20, 30, 40];
		var newArr = arr.map(function(item, index, array) {
			return item + 2; //每个元素+2
		})
		alert(newArr); // 22 32 42

		/*
			reduce 归并。数组前后元素运算
		*/
		var arr3 = [10, 20, 30];
		var res = arr3.reduce(function(pre, next, index, array) {
			/*
			pre  上一次遍历return后面的值
			next 当前遍历到的元素
		   */
			return pre + next;
		})
		alert(res); //10+20+30 = 60
		/*
		filter过滤	返回 
		return 0; 全过滤
		return 1; 不过滤
	   */
		var arr4 = [10, 20, 30, 40, 50].filter(function(item, index, array) {
			return item > 30; //所有大于30的元素
		})
		alert(arr4);

		/*
		some 判断return后面的条件是否成立，成立返回true，反之false
	   【注】如果一旦匹配成功，就返回。
		*/
		var arr5 = [10, 20, 30, 40];
		arr5.some(function(item, index, array) {
			return item == 30; //数组中有无30
		})
		alert(arr5);
		
		/*
			every  跟some一样，但要求每一项都符合要求
		*/
	   var arr6 = [10,20,30,40];
	   arr5.every(function(item, index, array) {
	   	return item > 30; //数组中有无30
	   })
	   	alert(arr6);
		/*
			find	
		*/
		   var arr7= [10,20,30,40];
		   arr7.find();
		/*
			splice(startIndex,count);
		*/
		   var arr8= [10,20,30,40];
		   arr8.splice(0,1);
		   
	</script>
	<body>
	</body>
</html>
